'''
Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array.

Note:

The number of elements initialized in nums1 and nums2 are m and n respectively.
You may assume that nums1 has enough space (size that is equal to m + n) to hold additional elements from nums2.
Example:

Input:
nums1 = [1,2,3,0,0,0], m = 3
nums2 = [2,5,6],       n = 3

Output: [1,2,2,3,5,6]
'''

class Solution:
    def merge(self, nums1: List[int], m: int, nums2: List[int], n: int) -> None:
        """
        Do not return anything, modify nums1 in-place instead.
        """
        '''
        2020-10-6 李运辰
        
        '''
        c = m
        i=0
        j=0
        '''
         1,2,2,3
        '''

        while(j<n):
            #print("i="+str(i)+",j="+str(j))
            #print(nums1)
            if j<n and i<(m+n):
                if nums1[i]>=nums2[j]:
                    #nums1从第i个开始往后移动因为
                    for  k in range(c-1,i-1,-1):
                         nums1[k+1]=nums1[k]

                    nums1[i]=nums2[j]
                    c +=1
                    i +=1
                    j +=1
                else:   
                    i +=1
            else:
                break;
        if j<n:
            for k in range(j,n):
                nums1[c] =nums2[k] 
                c +=1

        #print(nums1)
                
                
        